<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        // 回调函数 callback   :  把一个函数当做了参数  --- 回调函数



        // ++ 自增1运算   赋值运算

        // 封装函数：把数组中的值都自增1，返回新的数组
        var arr = [1, 2, 3];

        // function fn(arr) {
        //     // 搞一个新的数组
        //     var arr2 = [];
        //     // 遍历数组
        //     for (var i = 0; i < arr.length; i++) {
        //         var n = arr[i] + 1;    // 数组的值自增1
        //         arr2.push(n);
        //     }
        //     return arr2
        // }

        // var res = fn(arr);

        // console.log(res);




        // 封装一个函数  把数组中的值都+2
        // function fn(arr) {
        //     // 搞一个新的数组
        //     var arr2 = [];
        //     // 遍历数组
        //     for (var i = 0; i < arr.length; i++) {
        //         var n = arr[i] + 2;    // 数组的值自增1
        //         arr2.push(n);
        //     }
        //     return arr2
        // }


        // function fn(arr, n) {
        //     // 搞一个新的数组
        //     var arr2 = [];
        //     // 遍历数组
        //     for (var i = 0; i < arr.length; i++) {
        //         var n = arr[i] + n;    // 数组的值自增1
        //         arr2.push(n);
        //     }
        //     return arr2
        // }



        // function fn(arr) {
        //     // 搞一个新的数组
        //     var arr2 = [];
        //     // 遍历数组
        //     for (var i = 0; i < arr.length; i++) {
        //         var n = arr[i] * 2;    // 数组的值自增1
        //         arr2.push(n);
        //     }
        //     return arr2
        // }



        // 函数：把一段代码块封装起来


        function fn(arr, cb) {
            // 搞一个新的数组
            var arr2 = [];
            // 遍历数组
            for (var i = 0; i < arr.length; i++) {
                var n = cb(arr[i]);
                arr2.push(n);
            }
            return arr2
        }



        // var res = fn([1, 2, 3], function (m) {
        //     return m * 3
        // })

        // console.log(res);


        function ff(v) {
            return v + 2
        }


        fn([1, 2, 3], ff);



    </script>

</body>

</html>